import {getTodayDate} from '../../utils/util.js'
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    year: 0,
    month: 0,
    day: 0,
    dateFormat: ['日', '一', '二', '三', '四', '五', '六'],
    dateArr: [],
    isToday: 0,
    isTodayWeek: false,
    todayIndex: 0
  },
  attached: function () {
    let date = getTodayDate()
    this.initDate()
    this.setData({
      ...date,
      isToday: '' + date.year + date.month + date.day
    })
  },
  /**
   * 组件的方法列表
   */
  methods: {
    initDate: function (setYear, setMonth) {
      let dateArr = [] // 需要遍历的日历数组数据
      let arrLen = 0 // dateArr的数组长度
      let now = setYear ? new Date(setYear, setMonth) : new Date()
      let year = setYear || now.getFullYear()
      let nextYear = 0
      let month = setMonth || now.getMonth() // 没有+1方便后面计算当月总天数
      let nextMonth = (month + 1) > 11 ? 1 : (month + 1)
      let startWeek = new Date(year + ',' + (month + 1) + ',' + 1).getDay() // 目标月1号对应的星期
      let dayNums = new Date(year, nextMonth, 0).getDate() // 获取目标月有多少天
      let obj = {}
      let num = 0
      if (month + 1 > 11) {
        nextYear = year + 1
        dayNums = new Date(nextYear, nextMonth, 0).getDate();
      }
      arrLen = startWeek + dayNums;
      for (let i = 0; i < arrLen; i++) {
        if (i >= startWeek) {
          num = i - startWeek + 1
          obj = {
            isToday: '' + year + (month + 1) + num,
            dateNum: num,
            weight: 5
          }
        } else {
          obj = {}
        }
        dateArr[i] = obj
      }
      console.log(dateArr)
      this.setData({
        dateArr: dateArr
      })
      let nowDate = new Date()
      let nowYear = nowDate.getFullYear()
      let nowMonth = nowDate.getMonth() + 1
      let nowWeek = nowDate.getDay()
      let getYear = setYear || nowYear
      let getMonth = setMonth >= 0 ? (setMonth + 1) : nowMonth
      if (nowYear == getYear && nowMonth == getMonth) {
        this.setData({
          isTodayWeek: true,
          todayIndex: nowWeek
        })
      } else {
        this.setData({
          isTodayWeek: false,
          todayIndex: -1
        })
      }
    },
    /**
     * @description: 上个月
     * @param {type}
     * @return:
     */
    preMonth: function (event) {
      let year = this.data.month - 2 < 0 ? this.data.year - 1 : this.data.year
      let month = this.data.month - 2 < 0 ? 11 : this.data.month - 2
      this.setData({
        year: year,
        month: (month + 1)
      })
      this.initDate(year, month)
    },
    /**
     * @description: 下个月
     * @param {type}
     * @return:
     */
    nextMonth: function (event) {
      let year = this.data.month > 11 ? this.data.year + 1 : this.data.year
      let month = this.data.month > 11 ? 0 : this.data.month
      this.setData({
        year: year,
        month: (month + 1)
      })
      this.initDate(year, month)
    },
    onDate: function (event) {
      console.log(event)
    }
  }
})
